﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;

namespace NAVE_Alice_demo.Cena08.Cena
{
    class _0Cena
    {
        private Camada.Camada3 camada3;
        private Camada.Camada2 camada2;
        private Camada.Camada1 camada1;
        private Song sng_somAmbiente;

        public static bool bln_somJaComecou
        { private get; set; }

        public enum EstadoCena
        { NORMAL, CONFIRMA_PUZZLE }
        public static EstadoCena estadoCenaAtual = EstadoCena.NORMAL;

        private MensagemConfirmacao msm_confirmarJogo;

        public _0Cena(ContentManager Content)
        {
            camada3 = new Camada.Camada3(Content);
            camada2 = new Camada.Camada2(Content);
            camada1 = new Camada.Camada1(Content);

            sng_somAmbiente = Content.Load<Song>("Cena08//Cena//ambiente");
            bln_somJaComecou = false;

            msm_confirmarJogo = new MensagemConfirmacao(Content.Load<Texture2D>("Cena08//MensagemConfirmacao//intro"),
                                                        new Rectangle(710,375, 45,18));
        }

        public void Update(GameTime gameTime, MouseState mouse)
        {
            switch (estadoCenaAtual)
            {
                case EstadoCena.NORMAL:
                    if (!bln_somJaComecou)
                    {
                        MediaPlayer.Play(sng_somAmbiente);
                        MediaPlayer.IsRepeating = true;
                        bln_somJaComecou = true;
                    }

                    camada3.Update(gameTime, mouse);
                    camada2.Update(gameTime, mouse);
                    camada1.Update(gameTime, mouse);
                    break;
                case EstadoCena.CONFIRMA_PUZZLE:
                    if(msm_confirmarJogo.Confirmado(mouse))
                        RachaCuca.localAtual = RachaCuca.Local.PUZZLE;
                    break;
            }
        }

        public void Draw(SpriteBatch spriteBatch)
        {
            camada3.Draw(spriteBatch);
            camada2.Draw(spriteBatch);
            camada1.Draw(spriteBatch);

            if (estadoCenaAtual == EstadoCena.CONFIRMA_PUZZLE)
                msm_confirmarJogo.Draw(spriteBatch);
        }
    }
}
